GskRenderer *renderer;
GList *foci;
+
+ GtkConstraintSolver *constraint_solver;
} GtkWindowPrivate;
#ifdef GDK_WINDOWING_X11
g_signal_connect_swapped (priv->key_controller, "key-released",
G_CALLBACK (gtk_window_key_released), window);
gtk_widget_add_controller (widget, priv->key_controller);
+
+ /* Shared constraint solver */
+ priv->constraint_solver = gtk_constraint_solver_new ();
}
static GtkGesture *
return priv->renderer;
}
+static GtkConstraintSolver *
+gtk_window_root_get_constraint_solver (GtkRoot *root)
+{
+ GtkWindow *self = GTK_WINDOW (root);
+ GtkWindowPrivate *priv = gtk_window_get_instance_private (self);
+
+ return priv->constraint_solver;
+}
+
static void
gtk_window_native_get_surface_transform (GtkNative *native,
int *x,
gtk_window_root_interface_init (GtkRootInterface *iface)
{
iface->get_display = gtk_window_root_get_display;
+ iface->get_constraint_solver = gtk_window_root_get_constraint_solver;
}
static void
priv->mnemonics_display_timeout_id = 0;
}
+ g_clear_object (&priv->constraint_solver);
g_clear_object (&priv->renderer);
G_OBJECT_CLASS (gtk_window_parent_class)->finalize (object);